package com.daervin.svc.common.utils;

import com.daervin.svc.common.dto.SearchProductDTO;
import com.daervin.svc.common.dto.UpdateProductStockDTO;
import com.daervin.svc.common.dto.WhCategoryDTO;
import com.daervin.svc.common.dto.WhProductDTO;
import com.daervin.svc.common.exception.CommonException;
import com.daervin.svc.common.exception.ErrorCode;
import org.springframework.util.StringUtils;

/**
 * Created by daervin on 2023/8/19
 */
public class ValidateUtil {
    public static void checkProductId(Long productId) {
        if (productId == null || productId <= 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "ID不能为空");
        }
    }

    public static void checkSearchProduct(SearchProductDTO dto) {
        if (dto == null) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "商品搜索参数不能为空");
        }
        if (dto.getProductId() != null && dto.getProductId() <= 0) {
            dto.setProductId(null);
        }
        if (dto.getCategoryId() != null && dto.getCategoryId() <= 0) {
            dto.setCategoryId(null);
        }
        if (StringUtils.isEmpty(dto.getProductName())) {
            dto.setProductName(null);
        }
        if (StringUtils.isEmpty(dto.getBarCode())) {
            dto.setBarCode(null);
        }
    }

    public static void checkAddCategory(WhCategoryDTO dto) {
        if (StringUtils.isEmpty(dto.getName())) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "名称不能为空");
        }
    }

    public static void checkUpdateProductStock(UpdateProductStockDTO dto) {
        if (dto == null) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "参数不合法");
        }
        if (dto.getProductId() == null || dto.getProductId() <= 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "商品ID不合法");
        }
        if (dto.getOpType() == null || dto.getOpType() < 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "操作类型不合法");
        }
        if (dto.getStock() == null || dto.getStock() <= 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "数量不合法");
        }
    }

    public static void checkWhProduct(WhProductDTO dto) {
        if (dto == null) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "参数不合法");
        }
        if (StringUtils.isEmpty(dto.getName())) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "名称不合法");
        }
        if (dto.getCategoryId() == null || dto.getCategoryId() <= 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "品类ID不合法");
        }
        if (dto.getSupplierId() == null || dto.getSupplierId() <= 0) {
            throw new CommonException(ErrorCode.ERROR_PARAM, "供应商ID不合法");
        }
    }

}
